﻿//Tên form : Tạo nhóm người dùng
//Người thực hiện: Huypvt - Ngày tạo : 06-02-05
//Mô tả: - Tạo nhóm người dùng cho hệ thống
//Mô tả chi tiết các chức năng :
//		- Nhập đầy đủ thông tin nhóm người dùng, chọn người dùng cho nhóm.
//Các yêu cầu ràng buộc : Mọi thông tin thay đổi phải thông báo đến người dùng,
//kiểm tra ràng buộc trước khi lưu vào cơ sở dữ liệu.
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using Infragistics.Win.Misc;
using QLNHK.QUANTRIHETHONG;
using QLNHK.BLL;
using Infragistics.Win.UltraWinGrid;
using Infragistics.Win.UltraWinEditors;
using System.Data;
using Infragistics.Win;
using QLNHK.Controls;

namespace QLNHK.QUANTRIHETHONG
{
    /// <summary>
    /// Summary description for FrmTaoNhomNguoiDung.
    /// </summary>
    public class FrmTaoNhomNguoiDung : FrmBase
    {
        #region Variable Members

        private System.ComponentModel.IContainer components;

        /// <summary>
        /// Lưu trạng thái của FORM
        /// </summary>
        private bool _isChange = false;
        /// <summary>
        /// Control thông báo lỗi
        /// </summary>
        private System.Windows.Forms.ErrorProvider error;
        /// <summary>
        /// Lưu đầu đề FORM
        /// </summary>
        private string _caption;
        /// <summary>
        /// Id nhóm người dùng
        /// </summary>
        private int _idNhomNguoiDung;
        /// <summary>
        /// DataSet lưu Danh sách người dùng
        /// </summary>
        private System.Data.DataSet dsNguoiDung;
        /// <summary>
        /// Column ID_NguoiDung bảng dtNguoiDung
        /// </summary>
        private System.Data.DataColumn ID_NguoiDung;
        /// <summary>
        /// Column ID_HoSo_NhanSu bảng dtNguoiDung
        /// </summary>
        private System.Data.DataColumn ID_HoSo_NhanSu;
        /// <summary>
        /// Column Ten_NguoiDung bảng dtNguoiDung
        /// </summary>
        private System.Data.DataColumn Ten_NguoiDung;
        /// <summary>
        /// Column MatKhau bảng dtNguoiDung
        /// </summary>
        private System.Data.DataColumn MatKhau;
        /// <summary>
        /// Column NgayTao bảng dtNguoiDung
        /// </summary>
        private System.Data.DataColumn NgayTao;
        /// <summary>
        /// Column TinhTrang bảng dtNguoiDung
        /// </summary>
        private System.Data.DataColumn TinhTrang;
        private Infragistics.Win.Misc.UltraButton btnChonNguoiDung;
        private Infragistics.Win.UltraWinGrid.UltraGrid UGNguoiDung;
        private Infragistics.Win.UltraWinEditors.UltraTextEditor txtTenNhom;
        private System.Windows.Forms.Label label1;
        private System.Windows.Forms.Label label2;
        private System.Windows.Forms.Label label3;
        private Infragistics.Win.UltraWinEditors.UltraTextEditor txtMoTa;
        protected Infragistics.Win.Misc.UltraButton btnLuu;
        protected Infragistics.Win.Misc.UltraButton btnDong;
        private Infragistics.Win.Misc.UltraButton btnXoaNguoiDung;
        /// <summary>
        /// DataTable lưu Danh sách ngừi dùng
        /// </summary>
        private System.Data.DataTable dtNguoiDung;
        //private System.Windows.Forms.ImageList imgList;
        private System.Windows.Forms.ImageList imgGrid;
        private UltraGroupBox ultraGroupBox1;
        /// <summary>
        /// Xác nhận trạng thái FORM được mở là FORM Tạo hay FORM Chỉnh sửa, 
        /// do FORM Tạo và Chỉnh sửa là một.
        /// 1: Tạo mới, 0: Chỉnh sửa 
        /// </summary>
        private int _openForm;


        #endregion //Variable Members

        #region Properties
        public int IDNhomNguoiDung
        {
            set { this._idNhomNguoiDung = value; }
            get { return this._idNhomNguoiDung; }
        }
        public string TenNhom
        {
            set { this.txtTenNhom.Text = value; }
            get { return this.txtTenNhom.Text; }
        }
        public string Mota
        {
            set { this.txtMoTa.Text = value; }
            get { return this.txtMoTa.Text; }
        }
        #endregion //Properties

        #region Constructor
        public FrmTaoNhomNguoiDung()
        {
            InitializeComponent();
        }
        public FrmTaoNhomNguoiDung(int pOpenForm)
        {
            this._openForm = pOpenForm;
            InitializeComponent();
        }
        #endregion //Constructor

        #region Dispose
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (components != null)
                {
                    components.Dispose();
                }
            }
            base.Dispose(disposing);
        }
        #endregion //Dispose

        #region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            this.components = new System.ComponentModel.Container();
            Infragistics.Win.Appearance appearance1 = new Infragistics.Win.Appearance();
            System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmTaoNhomNguoiDung));
            Infragistics.Win.Appearance appearance2 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance4 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance5 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance6 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance7 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance8 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance9 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance10 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance11 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance12 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance13 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance14 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance15 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance16 = new Infragistics.Win.Appearance();
            Infragistics.Win.Appearance appearance17 = new Infragistics.Win.Appearance();
            this.btnLuu = new Infragistics.Win.Misc.UltraButton();
            this.btnDong = new Infragistics.Win.Misc.UltraButton();
            this.error = new System.Windows.Forms.ErrorProvider(this.components);
            this.dsNguoiDung = new System.Data.DataSet();
            this.dtNguoiDung = new System.Data.DataTable();
            this.ID_NguoiDung = new System.Data.DataColumn();
            this.ID_HoSo_NhanSu = new System.Data.DataColumn();
            this.Ten_NguoiDung = new System.Data.DataColumn();
            this.MatKhau = new System.Data.DataColumn();
            this.NgayTao = new System.Data.DataColumn();
            this.TinhTrang = new System.Data.DataColumn();
            this.btnXoaNguoiDung = new Infragistics.Win.Misc.UltraButton();
            this.btnChonNguoiDung = new Infragistics.Win.Misc.UltraButton();
            this.UGNguoiDung = new Infragistics.Win.UltraWinGrid.UltraGrid();
            this.imgGrid = new System.Windows.Forms.ImageList(this.components);
            this.txtTenNhom = new Infragistics.Win.UltraWinEditors.UltraTextEditor();
            this.label1 = new System.Windows.Forms.Label();
            this.label2 = new System.Windows.Forms.Label();
            this.label3 = new System.Windows.Forms.Label();
            this.txtMoTa = new Infragistics.Win.UltraWinEditors.UltraTextEditor();
            this.ultraGroupBox1 = new Infragistics.Win.Misc.UltraGroupBox();
            ((System.ComponentModel.ISupportInitialize)(this.error)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.dsNguoiDung)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.dtNguoiDung)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.UGNguoiDung)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.txtTenNhom)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.txtMoTa)).BeginInit();
            ((System.ComponentModel.ISupportInitialize)(this.ultraGroupBox1)).BeginInit();
            this.ultraGroupBox1.SuspendLayout();
            this.SuspendLayout();
            // 
            // imgList
            // 
            this.imgList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;
            this.imgList.ImageSize = new System.Drawing.Size(16, 16);
            this.imgList.ImageStream = null;
            // 
            // btnLuu
            // 
            this.btnLuu.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            appearance1.Image = ((object)(resources.GetObject("appearance1.Image")));
            this.btnLuu.Appearance = appearance1;
            this.btnLuu.BackColorInternal = System.Drawing.SystemColors.Control;
            this.btnLuu.Location = new System.Drawing.Point(354, 385);
            this.btnLuu.Name = "btnLuu";
            this.btnLuu.Size = new System.Drawing.Size(103, 24);
            this.btnLuu.TabIndex = 0;
            this.btnLuu.Text = "&Lưu";
            this.btnLuu.Click += new System.EventHandler(this.BtnEvent_Click);
            // 
            // btnDong
            // 
            this.btnDong.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
            appearance2.Image = ((object)(resources.GetObject("appearance2.Image")));
            this.btnDong.Appearance = appearance2;
            this.btnDong.BackColorInternal = System.Drawing.SystemColors.Control;
            this.btnDong.DialogResult = System.Windows.Forms.DialogResult.Cancel;
            this.btnDong.Location = new System.Drawing.Point(462, 385);
            this.btnDong.Name = "btnDong";
            this.btnDong.Size = new System.Drawing.Size(94, 24);
            this.btnDong.TabIndex = 1;
            this.btnDong.Text = "Đó&ng";
            this.btnDong.Click += new System.EventHandler(this.BtnEvent_Click);
            // 
            // error
            // 
            this.error.ContainerControl = this;
            // 
            // dsNguoiDung
            // 
            this.dsNguoiDung.DataSetName = "dsNguoiDung";
            this.dsNguoiDung.Locale = new System.Globalization.CultureInfo("en-US");
            this.dsNguoiDung.Tables.AddRange(new System.Data.DataTable[] {
            this.dtNguoiDung});
            // 
            // dtNguoiDung
            // 
            this.dtNguoiDung.Columns.AddRange(new System.Data.DataColumn[] {
            this.ID_NguoiDung,
            this.ID_HoSo_NhanSu,
            this.Ten_NguoiDung,
            this.MatKhau,
            this.NgayTao,
            this.TinhTrang});
            this.dtNguoiDung.TableName = "tb_NGUOIDUNG";
            // 
            // ID_NguoiDung
            // 
            this.ID_NguoiDung.ColumnName = "ID_NguoiDung";
            this.ID_NguoiDung.DataType = typeof(int);
            // 
            // ID_HoSo_NhanSu
            // 
            this.ID_HoSo_NhanSu.Caption = "ID_HoSo_NhanSu";
            this.ID_HoSo_NhanSu.ColumnName = "ID_HoSo_NhanSu";
            this.ID_HoSo_NhanSu.DataType = typeof(int);
            // 
            // Ten_NguoiDung
            // 
            this.Ten_NguoiDung.Caption = "Tên người dùng";
            this.Ten_NguoiDung.ColumnName = "Ten_NguoiDung";
            // 
            // MatKhau
            // 
            this.MatKhau.Caption = "Mật khẩu";
            this.MatKhau.ColumnName = "MatKhau";
            // 
            // NgayTao
            // 
            this.NgayTao.Caption = "Ngày tạo";
            this.NgayTao.ColumnName = "NgayTao";
            this.NgayTao.DataType = typeof(System.DateTime);
            // 
            // TinhTrang
            // 
            this.TinhTrang.Caption = "Tình trạng";
            this.TinhTrang.ColumnName = "TinhTrang";
            this.TinhTrang.DataType = typeof(bool);
            // 
            // btnXoaNguoiDung
            // 
            this.btnXoaNguoiDung.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
            appearance4.Image = ((object)(resources.GetObject("appearance4.Image")));
            this.btnXoaNguoiDung.Appearance = appearance4;
            this.btnXoaNguoiDung.BackColorInternal = System.Drawing.SystemColors.Control;
            this.btnXoaNguoiDung.Location = new System.Drawing.Point(242, 352);
            this.btnXoaNguoiDung.Name = "btnXoaNguoiDung";
            this.btnXoaNguoiDung.Size = new System.Drawing.Size(84, 24);
            this.btnXoaNguoiDung.TabIndex = 4;
            this.btnXoaNguoiDung.Text = "&Xóa";
            this.btnXoaNguoiDung.Click += new System.EventHandler(this.BtnEvent_Click);
            // 
            // btnChonNguoiDung
            // 
            this.btnChonNguoiDung.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
            appearance5.Image = ((object)(resources.GetObject("appearance5.Image")));
            this.btnChonNguoiDung.Appearance = appearance5;
            this.btnChonNguoiDung.BackColorInternal = System.Drawing.SystemColors.Control;
            this.btnChonNguoiDung.ImageList = this.imgList;
            this.btnChonNguoiDung.Location = new System.Drawing.Point(85, 352);
            this.btnChonNguoiDung.Name = "btnChonNguoiDung";
            this.btnChonNguoiDung.Size = new System.Drawing.Size(151, 24);
            this.btnChonNguoiDung.TabIndex = 3;
            this.btnChonNguoiDung.Text = "&Chọn người dùng...";
            this.btnChonNguoiDung.Click += new System.EventHandler(this.BtnEvent_Click);
            // 
            // UGNguoiDung
            // 
            this.UGNguoiDung.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
            | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            appearance6.BackColor = System.Drawing.SystemColors.Window;
            appearance6.BorderColor = System.Drawing.SystemColors.InactiveCaption;
            this.UGNguoiDung.DisplayLayout.Appearance = appearance6;
            this.UGNguoiDung.DisplayLayout.AutoFitStyle = Infragistics.Win.UltraWinGrid.AutoFitStyle.ResizeAllColumns;
            this.UGNguoiDung.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
            this.UGNguoiDung.DisplayLayout.CaptionVisible = Infragistics.Win.DefaultableBoolean.False;
            appearance7.BackColor = System.Drawing.SystemColors.ActiveBorder;
            appearance7.BackColor2 = System.Drawing.SystemColors.ControlDark;
            appearance7.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical;
            appearance7.BorderColor = System.Drawing.SystemColors.Window;
            this.UGNguoiDung.DisplayLayout.GroupByBox.Appearance = appearance7;
            appearance8.ForeColor = System.Drawing.SystemColors.GrayText;
            this.UGNguoiDung.DisplayLayout.GroupByBox.BandLabelAppearance = appearance8;
            this.UGNguoiDung.DisplayLayout.GroupByBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
            appearance9.BackColor = System.Drawing.SystemColors.ControlLightLight;
            appearance9.BackColor2 = System.Drawing.SystemColors.Control;
            appearance9.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal;
            appearance9.ForeColor = System.Drawing.SystemColors.GrayText;
            this.UGNguoiDung.DisplayLayout.GroupByBox.PromptAppearance = appearance9;
            this.UGNguoiDung.DisplayLayout.MaxColScrollRegions = 1;
            this.UGNguoiDung.DisplayLayout.MaxRowScrollRegions = 1;
            appearance10.BackColor = System.Drawing.SystemColors.Window;
            appearance10.ForeColor = System.Drawing.SystemColors.ControlText;
            this.UGNguoiDung.DisplayLayout.Override.ActiveCellAppearance = appearance10;
            appearance11.BackColor = System.Drawing.SystemColors.Highlight;
            appearance11.ForeColor = System.Drawing.SystemColors.HighlightText;
            this.UGNguoiDung.DisplayLayout.Override.ActiveRowAppearance = appearance11;
            this.UGNguoiDung.DisplayLayout.Override.BorderStyleCell = Infragistics.Win.UIElementBorderStyle.Dotted;
            this.UGNguoiDung.DisplayLayout.Override.BorderStyleRow = Infragistics.Win.UIElementBorderStyle.Dotted;
            appearance12.BackColor = System.Drawing.SystemColors.Window;
            this.UGNguoiDung.DisplayLayout.Override.CardAreaAppearance = appearance12;
            appearance13.BorderColor = System.Drawing.Color.Silver;
            appearance13.TextTrimming = Infragistics.Win.TextTrimming.EllipsisCharacter;
            this.UGNguoiDung.DisplayLayout.Override.CellAppearance = appearance13;
            this.UGNguoiDung.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.EditAndSelectText;
            this.UGNguoiDung.DisplayLayout.Override.CellPadding = 0;
            appearance14.BackColor = System.Drawing.SystemColors.Control;
            appearance14.BackColor2 = System.Drawing.SystemColors.ControlDark;
            appearance14.BackGradientAlignment = Infragistics.Win.GradientAlignment.Element;
            appearance14.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal;
            appearance14.BorderColor = System.Drawing.SystemColors.Window;
            this.UGNguoiDung.DisplayLayout.Override.GroupByRowAppearance = appearance14;
            appearance15.TextHAlignAsString = "Left";
            this.UGNguoiDung.DisplayLayout.Override.HeaderAppearance = appearance15;
            this.UGNguoiDung.DisplayLayout.Override.HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction.SortMulti;
            this.UGNguoiDung.DisplayLayout.Override.HeaderStyle = Infragistics.Win.HeaderStyle.WindowsXPCommand;
            appearance16.BackColor = System.Drawing.SystemColors.Window;
            appearance16.BorderColor = System.Drawing.Color.Silver;
            this.UGNguoiDung.DisplayLayout.Override.RowAppearance = appearance16;
            this.UGNguoiDung.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;
            appearance17.BackColor = System.Drawing.SystemColors.ControlLight;
            this.UGNguoiDung.DisplayLayout.Override.TemplateAddRowAppearance = appearance17;
            this.UGNguoiDung.DisplayLayout.ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds.ScrollToFill;
            this.UGNguoiDung.DisplayLayout.ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle.Immediate;
            this.UGNguoiDung.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.UGNguoiDung.ImageList = this.imgGrid;
            this.UGNguoiDung.Location = new System.Drawing.Point(85, 107);
            this.UGNguoiDung.Name = "UGNguoiDung";
            this.UGNguoiDung.Size = new System.Drawing.Size(471, 239);
            this.UGNguoiDung.TabIndex = 2;
            this.UGNguoiDung.Text = "ultraGrid1";
            this.UGNguoiDung.InitializeLayout += new Infragistics.Win.UltraWinGrid.InitializeLayoutEventHandler(this.UGNguoiDung_InitializeLayout);
            this.UGNguoiDung.AfterRowsDeleted += new System.EventHandler(this.UGNguoiDung_AfterRowsDeleted);
            this.UGNguoiDung.AfterSelectChange += new Infragistics.Win.UltraWinGrid.AfterSelectChangeEventHandler(this.UGNguoiDung_AfterSelectChange);
            this.UGNguoiDung.BeforeRowsDeleted += new Infragistics.Win.UltraWinGrid.BeforeRowsDeletedEventHandler(this.UGNguoiDung_BeforeRowsDeleted);
            this.UGNguoiDung.KeyDown += new System.Windows.Forms.KeyEventHandler(this.UGNguoiDung_KeyDown);
            // 
            // imgGrid
            // 
            this.imgGrid.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imgGrid.ImageStream")));
            this.imgGrid.TransparentColor = System.Drawing.Color.Transparent;
            this.imgGrid.Images.SetKeyName(0, "user.ico");
            this.imgGrid.Images.SetKeyName(1, "users.ico");
            // 
            // txtTenNhom
            // 
            this.txtTenNhom.Location = new System.Drawing.Point(85, 16);
            this.txtTenNhom.Name = "txtTenNhom";
            this.txtTenNhom.Size = new System.Drawing.Size(160, 22);
            this.txtTenNhom.TabIndex = 0;
            this.txtTenNhom.ValueChanged += new System.EventHandler(this.txtTenNhom_ValueChanged);
            // 
            // label1
            // 
            this.label1.AutoSize = true;
            this.label1.BackColor = System.Drawing.Color.Transparent;
            this.label1.Location = new System.Drawing.Point(21, 24);
            this.label1.Name = "label1";
            this.label1.Size = new System.Drawing.Size(58, 13);
            this.label1.TabIndex = 4;
            this.label1.Text = "Tên nhóm:";
            // 
            // label2
            // 
            this.label2.AutoSize = true;
            this.label2.BackColor = System.Drawing.Color.Transparent;
            this.label2.Location = new System.Drawing.Point(21, 49);
            this.label2.Name = "label2";
            this.label2.Size = new System.Drawing.Size(38, 13);
            this.label2.TabIndex = 5;
            this.label2.Text = "Mô tả:";
            // 
            // label3
            // 
            this.label3.AutoSize = true;
            this.label3.BackColor = System.Drawing.Color.Transparent;
            this.label3.Location = new System.Drawing.Point(87, 86);
            this.label3.Name = "label3";
            this.label3.Size = new System.Drawing.Size(64, 13);
            this.label3.TabIndex = 6;
            this.label3.Text = "Thành viên:";
            // 
            // txtMoTa
            // 
            this.txtMoTa.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            this.txtMoTa.Location = new System.Drawing.Point(85, 43);
            this.txtMoTa.Multiline = true;
            this.txtMoTa.Name = "txtMoTa";
            this.txtMoTa.Scrollbars = System.Windows.Forms.ScrollBars.Horizontal;
            this.txtMoTa.Size = new System.Drawing.Size(471, 41);
            this.txtMoTa.TabIndex = 1;
            this.txtMoTa.ValueChanged += new System.EventHandler(this.txtMoTa_ValueChanged);
            // 
            // ultraGroupBox1
            // 
            this.ultraGroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) 
            | System.Windows.Forms.AnchorStyles.Left) 
            | System.Windows.Forms.AnchorStyles.Right)));
            this.ultraGroupBox1.Controls.Add(this.txtMoTa);
            this.ultraGroupBox1.Controls.Add(this.btnLuu);
            this.ultraGroupBox1.Controls.Add(this.label2);
            this.ultraGroupBox1.Controls.Add(this.btnDong);
            this.ultraGroupBox1.Controls.Add(this.btnXoaNguoiDung);
            this.ultraGroupBox1.Controls.Add(this.label1);
            this.ultraGroupBox1.Controls.Add(this.txtTenNhom);
            this.ultraGroupBox1.Controls.Add(this.btnChonNguoiDung);
            this.ultraGroupBox1.Controls.Add(this.UGNguoiDung);
            this.ultraGroupBox1.Controls.Add(this.label3);
            this.ultraGroupBox1.Location = new System.Drawing.Point(-4, -5);
            this.ultraGroupBox1.Name = "ultraGroupBox1";
            this.ultraGroupBox1.Size = new System.Drawing.Size(583, 429);
            this.ultraGroupBox1.TabIndex = 7;
            this.ultraGroupBox1.ViewStyle = Infragistics.Win.Misc.GroupBoxViewStyle.Office2007;
            // 
            // FrmTaoNhomNguoiDung
            // 
            this.AcceptButton = this.btnLuu;
            this.AutoScaleBaseSize = new System.Drawing.Size(5, 14);
            this.BackColor = System.Drawing.Color.White;
            this.CancelButton = this.btnDong;
            this.ClientSize = new System.Drawing.Size(564, 416);
            this.Controls.Add(this.ultraGroupBox1);
            this.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
            this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
            this.Name = "FrmTaoNhomNguoiDung";
            this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
            this.Text = "Tạo nhóm người dùng";
            this.Closing += new System.ComponentModel.CancelEventHandler(this.FrmTaoNhomNguoiDung_Closing);
            this.Load += new System.EventHandler(this.FrmTaoNhomNguoiDung_Load);
            this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.FrmTaoNhomNguoiDung_KeyDown);
            ((System.ComponentModel.ISupportInitialize)(this.error)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.dsNguoiDung)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.dtNguoiDung)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.UGNguoiDung)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.txtTenNhom)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.txtMoTa)).EndInit();
            ((System.ComponentModel.ISupportInitialize)(this.ultraGroupBox1)).EndInit();
            this.ultraGroupBox1.ResumeLayout(false);
            this.ultraGroupBox1.PerformLayout();
            this.ResumeLayout(false);

        }
        #endregion

        #region Form Events
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Form load
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FrmTaoNhomNguoiDung_Load(object sender, System.EventArgs e)
        {
            try
            {
                this._caption = this.Text;

                switch (_openForm)
                {
                    case 1:
                        this.Text = "Tạo nhóm người dùng";
                        this._caption = this.Text;
                        this.btnXoaNguoiDung.Enabled = false;
                        this.btnChonNguoiDung.Enabled = false;
                        this.setChanged(this._isChange = false);
                        break;
                    case 0:
                        this.Text = "Chỉnh sửa nhóm người dùng";
                        this._caption = this.Text;
                        //Lấy danh sách người dùng thuộc nhóm theo ID
                        dsNguoiDung = this.listUserInNhomNguoiDung(this.IDNhomNguoiDung);
                        //Gán tên nhóm
                        this.txtTenNhom.Text = this.TenNhom;
                        //Gán mô tả nhóm
                        this.txtMoTa.Text = this.Mota;

                        if (dsNguoiDung != null && dsNguoiDung.Tables[0].Rows.Count != 0)
                        {
                            //Binding
                            UGNguoiDung.DataSource = dsNguoiDung.Tables[0];
                            UGNguoiDung.DisplayLayout.Bands[0].Columns["Ten_NguoiDung"].Header.Caption = "Tên người dùng";
                            UGNguoiDung.DisplayLayout.Bands[0].Columns["Ten_NguoiDung"].CellAppearance.Image = imgGrid.Images[0];
                            UGNguoiDung.DataBind();
                        }
                        else
                            this.UGNguoiDung.CreationFilter = new QLNHK.Controls.EmptyGridCreationFilter("Chưa thêm người dùng vào nhóm.");

                        this.btnXoaNguoiDung.Enabled = UGNguoiDung.Rows.Count != 0;
                        this.btnChonNguoiDung.Enabled = txtTenNhom.Text != "";
                        this.setChanged(this._isChange = false);
                        break;
                }
            }
            catch (Exception ex) { throw ex; }
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Sự kiện xảy ra trước khi đóng form
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FrmTaoNhomNguoiDung_Closing(object sender, CancelEventArgs e)
        {
            this.saveBeforClosing();
            //Kiểm tra điều kiện hợp lệ trước khi đóng form
            if (this.DialogResult == DialogResult.None)
                e.Cancel = true;
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Handles the Click event of the BtnEvent control.
        /// </summary>
        /// <param name="sender">Đối tượng của hàm.</param>
        /// <param name="e">Sự kiện khởi tạo cho  .</param>
        private void BtnEvent_Click(object sender, System.EventArgs e)
        {
            try
            {
                UltraButton btn = (UltraButton)(sender);
                switch (btn.Name)
                {
                    case "btnChonNguoiDung":
                        FrmChonNguoiDung frmChonDialog = new FrmChonNguoiDung();
                        this.doChonNguoiDung(frmChonDialog);
                        break;

                    case "btnXoaNguoiDung":
                        this.deleteNguoiDung();
                        break;

                    case "btnLuu":
                        //Kiểm tra tên nhóm khác rỗng?
                        //Tên nhóm không rỗng.
                        if (this.checkTenNhomIsNull(txtTenNhom))
                        {
                            this.saveNhom();
                        }

                        break;
                    case "btnDong":
                        this.Close();
                        break;
                }
            }
            catch (Exception ex) { throw ex; }
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:		
        /// <summary>
        /// Handles the InitializeLayout event of the UGMain control.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UGNguoiDung_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e)
        {
            try
            {
                UltraGridControls.SetGridStyle(UGNguoiDung);
                //   Let's only allow single-selection of rows
                e.Layout.Override.SelectTypeRow = SelectType.Single;
                //	Select and highlight the entire row of the cell that was clicked
                e.Layout.Override.CellClickAction = CellClickAction.RowSelect;

                e.Layout.Override.CellAppearance.BorderAlpha = Alpha.Transparent;
                e.Layout.Override.RowAppearance.BorderColor = SystemColors.Window;

                // Set Caption
                e.Layout.Bands[0].Columns["ID_NguoiDung"].Hidden = true;
                e.Layout.Bands[0].Columns["ID_HoSo_NhanSu"].Hidden = true;
                e.Layout.Bands[0].Columns["Ten_NguoiDung"].Header.Caption = "Tên người dùng";
                e.Layout.Bands[0].Columns["Ten_NguoiDung"].CellAppearance.Image = imgGrid.Images[0];
                e.Layout.Bands[0].Columns["MatKhau"].Hidden = true;
                e.Layout.Bands[0].Columns["NgayTao"].Hidden = true;
                e.Layout.Bands[0].Columns["TinhTrang"].Hidden = true;
                e.Layout.Bands[0].Columns["Ten_NguoiDung"].CellActivation = Activation.NoEdit;
            }
            catch { }
        }

        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:		
        /// <summary>
        /// Xảy ra sự kiện khi có thay đổi tên nhóm
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void txtTenNhom_ValueChanged(object sender, System.EventArgs e)
        {
            this.setChanged(this._isChange = true);
            this.btnChonNguoiDung.Enabled = this.txtTenNhom.Text != "";
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:		
        /// <summary>
        /// Xảy ra sự kiện khi có thay đổi mô tả nhóm
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void txtMoTa_ValueChanged(object sender, System.EventArgs e)
        {
            this.setChanged(this._isChange = true);
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:		
        /// <summary>
        /// Xảy ra sự kiện khi có thay đổi Focus trên row
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UGNguoiDung_AfterSelectChange(object sender, Infragistics.Win.UltraWinGrid.AfterSelectChangeEventArgs e)
        {
            try
            {
                if (this.UGNguoiDung.Rows.Count != 0)
                    this.btnXoaNguoiDung.Enabled = true;
                else
                    this.btnXoaNguoiDung.Enabled = false;
            }
            catch { }
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:		
        /// <summary>
        /// Xảy ra sự kiện sau khi xóa row 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UGNguoiDung_AfterRowsDeleted(object sender, System.EventArgs e)
        {
            try
            {
                this.btnXoaNguoiDung.Enabled = UGNguoiDung.Rows.Count != 0;

            }
            catch { MessageBox.Show(QLNHK.BLL.ThongBao.MSG_Warning_FrmTaoNguoiDung_LoiXoaNguoiDung, QLNHK.BLL.ThongBao.MSG_Caption_Error, MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }

        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Kiểm tra trước khi xóa row
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UGNguoiDung_BeforeRowsDeleted(object sender, Infragistics.Win.UltraWinGrid.BeforeRowsDeletedEventArgs e)
        {
            try
            {
                e.DisplayPromptMsg = false;
            }
            catch (Exception ex) { throw ex; }
        }

        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Sự kiện xảy ra khi nhấn DEL keyboard 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void UGNguoiDung_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            try
            {
                if (e.KeyCode == Keys.Delete)
                {
                    this.deleteNguoiDung();
                }
            }
            catch { }
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Sự kiện xảy ra khi nhấn DEL keyboard 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void FrmTaoNhomNguoiDung_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
        {
            try
            {
                if (e.KeyCode == Keys.Delete)
                {
                    this.deleteNguoiDung();
                }
            }
            catch { }
        }

        #endregion //Form Events

        #region Private Methods
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Thực thi mở form Chọn người dùng,
        /// cập nhật danh sách người dùng được chọn trong nhóm
        /// </summary>
        private void doChonNguoiDung(FrmChonNguoiDung frmChonDialog)
        {
            try
            {
                //Mở Form Chọn người dùng và gán các thuộc tính
                frmChonDialog.IDNhomNguoiDung = this.IDNhomNguoiDung;//ID nhóm
                //Nếu có người dùng trong nhóm, 
                //chuyển trạng thái danh sách người dùng được chọn đến form Chọn người dùng
                if (UGNguoiDung.Rows.Count != 0)
                {
                    //Cập nhật dữ liệu trên lưới
                    this.UGNguoiDung.UpdateData();
                    this.doDeleteRowInDataSetChanged(dsNguoiDung.GetChanges());
                    frmChonDialog.ArrayIDNguoiDung = this.getArrayIDNguoiDung(dsNguoiDung);//Danh sách người dùng được chọn
                }
                if (frmChonDialog.ShowDialog() == DialogResult.OK)
                {
                    //Cập nhật lại danh sách người dùng được chọn
                    this.importIDNguoiDung(dsNguoiDung, frmChonDialog.ArrayIDNguoiDung);
                    this.UGNguoiDung.Focus();
                    this.UGNguoiDung.DisplayLayout.Bands[0].Columns["Ten_NguoiDung"].Header.Caption = "Tên người dùng"; this.btnXoaNguoiDung.Enabled = UGNguoiDung.Rows.Count != 0;
                    if (this.UGNguoiDung.Rows.Count != 0)
                        //Thiết lập index cho người dùng được thêm vào
                        this.UGNguoiDung.ActiveRow = this.UGNguoiDung.Rows[this.UGNguoiDung.Rows.Count - 1];
                    this.setChanged(this._isChange = true);
                }
            }
            catch { MessageBox.Show(QLNHK.BLL.ThongBao.MSG_Warning_FrmTaoNhomNguoiDung_LoiThemNguoiDungVaoNhom, QLNHK.BLL.ThongBao.MSG_Caption_Error, MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }

        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Tạo mới nhóm người dùng vào CSDL
        /// </summary>
        /// <param name="pTenNhom">Tên nhóm</param>
        /// <param name="pMoTa">Mô tả nhóm</param>
        /// <returns>int</returns>
        private int insertNhom(string pTenNhom, string pMoTa)
        {
            try
            {
                // Tạo instance của lớp Cls_NHOM_NGUOIDUNG
                Cls_NHOM_NGUOIDUNG objNhomNguoiDung = new Cls_NHOM_NGUOIDUNG();
                //Gọi phương thức lưu thông tin nhóm 
                return objNhomNguoiDung.DoInsert(pTenNhom, pMoTa);
            }
            catch
            {
                return -1;
            }

        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Thêm người dùng vào nhóm trong CSDL.
        /// </summary>
        /// <param name="pIDNguoiDung">ID người dùng</param>
        /// <param name="pIDNhomNguoiDung">ID nhóm ngừi dùng</param>
        /// <returns>int</returns>
        private int insertNguoiDungInNhom(int pIDNguoiDung, int pIDNhomNguoiDung)
        {
            int result = -1;
            try
            {
                // Tạo instance của lớp Cls_NHOM_NGUOIDUNG
                Cls_NHOM_NGUOIDUNG_CHITIET objNhomNguoiDungChiTiet = new Cls_NHOM_NGUOIDUNG_CHITIET();
                //Gọi phương thức xóa 
                result = objNhomNguoiDungChiTiet.DoInsert(pIDNguoiDung, pIDNhomNguoiDung);
            }
            catch (Exception ex) { throw ex; }
            return result;
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Xóa người dùng chọn trên lưới.
        /// </summary>
        private void deleteRowActived()
        {
            try
            {
                //Xóa row trên lưới
                UGNguoiDung.ActiveRow.Delete(false);
            }
            catch (Exception ex) { throw ex; }
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Xóa người dùng khỏi nhóm.
        /// </summary>
        /// <returns>int</returns>
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Xóa người dùng khỏi nhóm
        /// </summary>
        private void deleteNguoiDung()
        {
            try
            {
                int inddex = this.UGNguoiDung.ActiveRow.VisibleIndex;//Lấy index người dùng được chọn
                this.deleteRowActived();
                //Cập nhật lưới
                this.UGNguoiDung.UpdateData();
                this.doDeleteRowInDataSetChanged(dsNguoiDung);
                this.btnXoaNguoiDung.Enabled = this.UGNguoiDung.Rows.Count != 0;
                //Thiết lập index đến người dùng trên người dùng đã xóa
                if (inddex - 1 > 0) //Kiểm tra index có nhỏ hơn index nhóm đầu tiên?
                {
                    this.UGNguoiDung.ActiveRow = this.UGNguoiDung.Rows[inddex - 1];
                }
                this.setChanged(this._isChange = true);
            }
            catch { }
        }

        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Xóa người dùng khỏi nhóm.
        /// </summary>
        /// <returns>int</returns>
        private int deleteNguoiDungFomNhom(int pIDNguoiDung, int pIDNhomNguoiDung)
        {
            int result = -1;
            try
            {
                // Tạo instance của lớp Cls_NHOM_NGUOIDUNG
                Cls_NHOM_NGUOIDUNG_CHITIET objNhomNguoiDungChiTiet = new Cls_NHOM_NGUOIDUNG_CHITIET();
                //Gọi phương thức lưu thông tin nhóm 
                result = objNhomNguoiDungChiTiet.DoDelete(pIDNguoiDung, pIDNhomNguoiDung);
            }
            catch (Exception ex) { throw ex; }
            return result;
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Chỉnh sửa nhóm người dùng trong CSDL
        /// </summary>
        /// <param name="pIDNhomNguoiDung">ID nhóm người dùng</param>
        /// <param name="pTenNhom">Tên nhóm</param>
        /// <param name="pMoTa">Mô tả nhóm</param>
        /// <returns>int</returns>
        private int updateNhom(int pIDNhomNguoiDung, string pTenNhom, string pMoTa)
        {
            try
            {
                // Tạo instance của lớp Cls_NHOM_NGUOIDUNG
                Cls_NHOM_NGUOIDUNG objNhomNguoiDung = new Cls_NHOM_NGUOIDUNG();
                //Gọi phương thức lưu thông tin nhóm 
                return objNhomNguoiDung.DoUpdate(pIDNhomNguoiDung, pTenNhom, pMoTa);
            }
            catch
            {
                return -1;
            }
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Lưu thông tin nhóm người dùng vào CSDL
        /// </summary>
        private void saveNhom()
        {
            //Lưu:
            //	+ Lưu tên, mô tả nhóm
            //	+ Lưu người dùng vào nhóm
            //Note: 
            //	+ Kiểm tra tên nhóm đã tồn tại 
            //	+ Tên nhóm bắt buộc không rỗng

            try
            {
                //Xác định Form mở là Tạo nhóm hay Chỉnh sửa nhóm
                switch (this._openForm)
                {
                    case 0: //Chỉnh sửa nhóm
                        if (this.updateNhom(this.IDNhomNguoiDung, txtTenNhom.Text, txtMoTa.Text) != -1)
                        {
                            //Xóa danh sách người dùng cũ thuộc nhóm trước đó
                            if (this.listUserInNhomNguoiDung(this.IDNhomNguoiDung).Tables[0].Rows.Count != 0)
                            {
                                foreach (DataRow dr in this.listUserInNhomNguoiDung(this.IDNhomNguoiDung).Tables[0].Rows)
                                {
                                    this.deleteNguoiDungFomNhom(Convert.ToInt32(dr["ID_NguoiDung"]), this.IDNhomNguoiDung);
                                }
                            }
                            //Cập nhật dữ liệu trên lưới
                            this.UGNguoiDung.UpdateData();
                            // Cập nhật người dùng mới vào nhóm
                            this.doInsertnguoiDungInNhom(dsNguoiDung, this.IDNhomNguoiDung);
                            //Thiết lập trạng thái form
                            this.setChanged(this._isChange = false);
                            this.DialogResult = DialogResult.OK;
                        }
                        else
                        {
                            MessageBox.Show(string.Format(QLNHK.BLL.ThongBao.MSG_Warning_FrmTaoNhomNguoiDung_TenNhomIsExists, txtTenNhom.Text), QLNHK.BLL.ThongBao.MSG_Caption_Error, MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                            this.DialogResult = DialogResult.None;
                        }
                        //						
                        break;
                    case 1: //Tạo nhóm						
                        //Kiểm tra tên nhóm đã tồn tại không?
                        //Không tồn tại
                        if (!this.checkTenNhomIsExists(txtTenNhom.Text))
                        {
                            //Tạo mới nhóm, trả về ID nhóm
                            this.IDNhomNguoiDung = this.insertNhom(txtTenNhom.Text, txtMoTa.Text);
                            if (this.IDNhomNguoiDung != -1)
                            {
                                //Cập nhật dữ liệu trên lưới
                                this.UGNguoiDung.UpdateData();
                                //Thêm người dùng vào nhóm
                                this.doInsertnguoiDungInNhom(dsNguoiDung, this.IDNhomNguoiDung);
                                //Thiết lập trmạng thái form
                                this.setChanged(this._isChange = false);
                                this.DialogResult = DialogResult.OK;
                            }
                            else
                            {
                                MessageBox.Show(QLNHK.BLL.ThongBao.MSG_Warning_FrmTaoNhomNguoiDung_LoiTaoNhom, QLNHK.BLL.ThongBao.MSG_Caption_Error, MessageBoxButtons.OK, MessageBoxIcon.Information);
                                this.DialogResult = DialogResult.None;
                            }
                        }
                        else
                        {
                            MessageBox.Show(string.Format(QLNHK.BLL.ThongBao.MSG_Warning_FrmTaoNhomNguoiDung_TenNhomIsExists, txtTenNhom.Text), QLNHK.BLL.ThongBao.MSG_Caption_Warning, MessageBoxButtons.OK,
                                MessageBoxIcon.Information);
                            this.DialogResult = DialogResult.None;
                        }
                        break;
                }
            }
            catch
            {
                MessageBox.Show(QLNHK.BLL.ThongBao.MSG_Error_DatabaseAll_NoArgs, QLNHK.BLL.ThongBao.MSG_Caption_Error, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Lưu thông tin nhóm người dùng vào CSDL
        /// </summary>
        private void saveBeforClosing()
        {
            try
            {
                if (this._isChange)
                {
                    if (MessageBox.Show(QLNHK.BLL.ThongBao.MSG_Warring_SaveData, QLNHK.BLL.ThongBao.MSG_Caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        //Kiểm tra tên nhóm khác rỗng?
                        //Tên nhóm không rỗng.
                        if (this.checkTenNhomIsNull(txtTenNhom))
                        {
                            this.saveNhom();
                        }
                        else
                            this.DialogResult = DialogResult.None;
                    }
                }
            }
            catch
            {
                MessageBox.Show(QLNHK.BLL.ThongBao.MSG_Error_DatabaseAll_NoArgs, QLNHK.BLL.ThongBao.MSG_Caption_Error, MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:		
        /// <summary>
        /// Xóa người dùng trong DataSet khi người dùng đó đã được xóa trên lưới
        /// </summary>
        private void doDeleteRowInDataSetChanged(DataSet pDataSet)
        {
            try
            {
                if (pDataSet != null && pDataSet.Tables[0].Rows.Count != 0)
                {
                    foreach (DataRow dr in pDataSet.Tables[0].Rows)
                    {
                        if (dr.RowState == DataRowState.Deleted)
                        {
                            dr.Delete();
                        }
                    }
                    //Xác nhận thay đổi
                    pDataSet.AcceptChanges();
                }
            }
            catch
            {
                MessageBox.Show(QLNHK.BLL.ThongBao.MSG_Warning_FrmTaoNguoiDung_LoiXoaNguoiDung, QLNHK.BLL.ThongBao.MSG_Caption_Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Thực thi thêm người dùng được chọn vào nhóm
        /// </summary>
        /// <param name="pDataSet">DataSet lưu danh sách người dùng được chọn</param>
        private void doInsertnguoiDungInNhom(DataSet pDataSet, int pIDNhomNguoiDung)
        {
            try
            {
                //Thêm người dùng vào nhóm
                //Nếu có người dùng được chọn vào nhóm
                if (pDataSet != null && pDataSet.Tables[0].Rows.Count != 0)
                {
                    foreach (DataRow dr in pDataSet.Tables[0].Rows)
                    {
                        this.insertNguoiDungInNhom(Convert.ToInt32(dr["ID_NguoiDung"]), pIDNhomNguoiDung);
                    }
                    //Lấy mới danh sách người dùng thuộc nhóm
                    this.UGNguoiDung.DataSource = this.listUserInNhomNguoiDung(pIDNhomNguoiDung).Tables[0].DefaultView;
                    this.UGNguoiDung.DataBind();
                }
            }
            catch
            {
                //MessageBox.Show(QLNHK.BLL.ThongBao.MSG_Warning_FrmTaoNhomNguoiDung_LoiThemNguoiDungVaoNhom,QLNHK.BLL.ThongBao.MSG_Caption_Error,MessageBoxButtons.OK,MessageBoxIcon.Error);
            }
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:		
        /// <summary>
        /// Kiểm tra tên nhóm có rỗng?, True: Không rỗng
        /// </summary>
        /// <param name="controlText">Control UltraTextEditor</param>
        /// <returns>Boolean</returns>
        private bool checkTenNhomIsNull(UltraTextEditor controlText)
        {
            bool isValid = false;

            try
            {
                if (controlText.Text == "")
                    this.error.SetError(controlText, "Nhập tên cho nhóm người dùng.");
                else
                {
                    this.error.SetError(controlText, "");
                    isValid = true;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return isValid;
        }

        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:		
        /// <summary>
        /// Kiểm tra tên nhóm có tồn tại?
        /// </summary>
        /// <param name="pTenNhom">Tên nhóm</param>
        /// <returns>Boolean</returns>
        private bool checkTenNhomIsExists(string pTenNhom)
        {
            bool isValid = false;

            try
            {
                // Tạo instance của lớp Cls_NHOM_NGUOIDUNG
                Cls_NHOM_NGUOIDUNG objNhomNguoiDung = new Cls_NHOM_NGUOIDUNG();
                if (objNhomNguoiDung.CheckTenNguoiDung(pTenNhom) == 1)
                    isValid = true;
                else
                    isValid = false;

            }
            catch (Exception ex)
            {
                throw ex;
            }

            return isValid;
        }

        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Thiết lập trạng thái thay đổi đầu đề của FORM khi có thay đổi
        /// </summary>
        /// <param name="isChanged">Trạng thái FORM (True: Có thay đổi)</param>
        private void setChanged(bool isChanged)
        {
            if (isChanged)
            {
                this.Text = _caption + "*";
                this.btnLuu.Enabled = isChanged;
            }
            else
            {
                this.Text = _caption;
                this.btnLuu.Enabled = isChanged;
            }
        }

        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Thiết lập trạng thái của Button
        /// </summary>
        /// <param name="flag">Boolean</param>
        private void setStateButton(bool flag)
        {
            // Thiết lập trạng thái ban đầu của Button
            this.btnChonNguoiDung.Enabled = flag;
            this.btnLuu.Enabled = flag;
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Lấy danh sách người dùng có trong nhóm
        /// </summary>
        /// <param name="pIDNhomNguoiDung">ID nhóm người dùng</param>
        /// <returns>DataSet</returns>
        private DataSet listUserInNhomNguoiDung(int pIDNhomNguoiDung)
        {
            try
            {
                // Tạo instance của lớp Cls_NHOM_NGUOIDUNG
                Cls_NHOM_NGUOIDUNG objNhomNguoiDung = new Cls_NHOM_NGUOIDUNG();
                return objNhomNguoiDung.ListUserByIDNhomNguoiDung(pIDNhomNguoiDung);
            }
            catch
            {
                return null;
            }
        }

        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Lấy danh sách người dùng được chọn
        /// </summary>
        /// <returns>ArrayList</returns>
        private ArrayList getArrayIDNguoiDung(DataSet pDataSetNguoiDung)
        {
            ArrayList arrNguoiDungChon = new ArrayList(); // Mảng danh sách người dùng được chọn
            try
            {
                foreach (DataRow dr in pDataSetNguoiDung.Tables[0].Rows)
                {
                    arrNguoiDungChon.Add(dr["ID_NguoiDung"]);
                }
            }
            catch { MessageBox.Show(QLNHK.BLL.ThongBao.MSG_Warning_FrmTaoNhomNguoiDung_LoiLayDanhSachNguoiDungDuocChon, QLNHK.BLL.ThongBao.MSG_Caption_Error, MessageBoxButtons.OK, MessageBoxIcon.Error); }

            return arrNguoiDungChon;
        }
        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Kiểm tra thông tin có thay đổi?
        /// </summary>
        /// <param name="pDataSet">DataSet lưu dữ liệu</param>
        /// <returns>Boolean</returns>
        private bool checkIsChanged(DataSet pDataSet)
        {
            bool result = false;
            try
            {
                result = pDataSet.HasChanges();
            }
            catch (Exception ex) { throw ex; }
            return result;
        }

        // Author: Hungtq . Date: 2/9/2006.
        // Modifier: Hungtq. Date:  2/9/2006.
        // Liệt kê những gì đã chỉnh sửa:
        /// <summary>
        /// Danh sách ID người dùng được chọn vào nhóm
        /// </summary>
        /// <param name="dsNguoiDung">DataSet thêm danh sách người dùng được chọn</param>
        /// <param name="pArrayIDNguoiDung">Mảng ID người dùng</param>
        private void importIDNguoiDung(DataSet pDataSetNguoiDung, ArrayList pArrayIDNguoiDung)
        {
            try
            {
                //Tạo instance lớp Cls_NGUOIDUNG
                Cls_NGUOIDUNG objNguoiDung = new Cls_NGUOIDUNG();
                if (pArrayIDNguoiDung.Count != 0)
                {
                    //Xóa dữ liệu cũ
                    pDataSetNguoiDung.Clear();
                    System.Collections.IEnumerator myEnumerator = pArrayIDNguoiDung.GetEnumerator();
                    DataRow dr;
                    //Đưa các người dùng được chọn vào lưới
                    while (myEnumerator.MoveNext())
                    {
                        //Tạo row mới
                        dr = pDataSetNguoiDung.Tables[0].NewRow();
                        //Gán giá trị ID_NguoiDung, Tên
                        dr["ID_NguoiDung"] = Convert.ToInt32(myEnumerator.Current);
                        dr["Ten_NguoiDung"] = objNguoiDung.ListByID(Convert.ToInt32(myEnumerator.Current)).Tables[0].Rows[0]["Ten_NguoiDung"].ToString();
                        //Add row vào bảng
                        pDataSetNguoiDung.Tables[0].Rows.Add(dr);
                    }
                    //Binding
                    UGNguoiDung.DataSource = pDataSetNguoiDung.Tables[0];
                    UGNguoiDung.DataBind();
                }
            }
            catch { MessageBox.Show(QLNHK.BLL.ThongBao.MSG_Warning_FrmTaoNhomNguoiDung_LoiThemNguoiDungVaoNhom, QLNHK.BLL.ThongBao.MSG_Caption_Error, MessageBoxButtons.OK, MessageBoxIcon.Error); }
        }


        #endregion //Private Methods

    }
}

